import { set } from 'lodash-es';

export function genMessage(langs: Record<string, Recordable>, prefix: string = 'lang') {
	const obj: Recordable = {};

	Object.keys(langs).forEach((key) => {
		const langFileMoudle = langs[key].default;
		let fileName = key.replace(`./${prefix}/`, '').replace(/^\.\//, '');
		const lastIndex = fileName.lastIndexOf('.');
		fileName = fileName.substring(0, lastIndex);
		const keyList = fileName.split('/');
		const moduleName = keyList.shift();
		const objKey = keyList.join('.');

		if (moduleName) {
			if (objKey) {
				set(obj, moduleName, obj[moduleName] || {});
				set(obj[moduleName], objKey, langFileMoudle);
			} else {
				set(obj, moduleName, langFileMoudle || {});
			}
		}
	});

	return obj;
}
